package com.aatattoo.light_food_service.service;

import com.aatattoo.light_food_service.mapper.UserMapper;
import com.aatattoo.light_food_service.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@Service
@Component
public class UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 增加用户
     * @param user
     * @return
     */
    public int addUser(User user){
        return userMapper.addUser(user);
    }

    /**
     * 查找用户（手机号）
     * @param phoneNumber
     * @return
     */
    public User findByPhone(String phoneNumber){
        return userMapper.findByPhone(phoneNumber);
    }

    /**
     * 查找用户（id）
     * @param id
     * @return
     */
    public User fingById(int id){
        return userMapper.findById(id);
    }

    /**
     * 检查用户是否存在
     * @param phoneNumber
     * @return
     */
    public int isTableExist(String phoneNumber){
        return userMapper.isTableExist(phoneNumber);
    }

    /**
     * 更新用户头像（手机号）
     * @param user
     * @return
     */
    public int updataAvatarByPhone(User user){
        return userMapper.updataAvatarByPhone(user);
    }

    /**
     * 更新用户头像（id）
     * @param user
     * @return
     */
    public int updataAvatarById(User user){
        return userMapper.updataAvatarById(user);
    }

    /**
     * 更新密码（手机号）
     * @param user
     * @return
     */
    public int updataPwdByPhone(User user){
        return userMapper.updataPwdByPhone(user);
    }

    /**
     * 更新密码（用户ID）
     * @param user
     * @return
     */
    public int updataPwdById(User user){
        return userMapper.updataPwdById(user);
    }

    /**
     * 更新性别
     * @param user
     * @return
     */
    public int updataGenderById(User user){
        return userMapper.updataGenderById(user);
    }

    /**
     * 更新名字（用户Id）
     * @param user
     * @return
     */
    public int updataNameById(User user){
        return userMapper.updataNameById(user);
    }

    /**
     * 更新密保问题，答案（用户id）
     * @param user
     * @return
     */
    public int updataQuestionById(User user){
        return userMapper.updataQuestionById(user);
    }

    public List<User> fuzzyQuery(String name){
        return userMapper.fuzzyQuery(name);
    }
    /**
     * 通过用户id获取姓名，头像，id
     * @param id
     * @return
     */
    public Map<String,Object> getUserMap(int id){
        Map<String,Object> userMap=new LinkedHashMap<>();
        User user = fingById(id);
        userMap.put("id",user.getId());
        userMap.put("name",user.getName());
        userMap.put("avatar",user.getAvatar());
        return userMap;
    }
}
